.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FF9B310C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,1EA95400428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,22B272C78F0
call      qword ptr [7FF9B3044810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L01
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L02
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L02
M00_L01
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L02
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30FE778]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FF9B2DC7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FF9B38BEA78]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,81A07C3BDBAE
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FF9B3044228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      00007FF9B2E71E60
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,81A07C3BDBAE
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B301FD20]
mov       rcx,81A07C3BDBAE
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FF9B2FEF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FF9B2FEF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FF9B38BC018]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,1EA95400298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FF9B384C720]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FF9B3846508]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FF9B388D068]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FF9B384C828]
lea       rcx,[rbp+40]
call      qword ptr [7FF9B2F2C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,1EA95405B80
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FF9B3187550]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,81A07C3BDBAE
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B301FE40]
mov       rcx,81A07C3BDBAE
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FF9B2F25B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,esi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FF9B310CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FF9B33BF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FF9B306E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FF9B306E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      00007FF9B2E71E60
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,22B272B0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FF9B30DC150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,1E66C800428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,226FE5478F0
call      qword ptr [7FF9B3014810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L01
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L02
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L02
M00_L01
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L02
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30CE778]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FF9B2D97738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FF9B388E658]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,4097C240AAF9
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FF9B3014228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      00007FF9B2E41E60
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,4097C240AAF9
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B2FEFD20]
mov       rcx,4097C240AAF9
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FF9B2FBF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FF9B2FBF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FF9B3887B58]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,1E66C800298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FF9B381C720]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FF9B3816508]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FF9B385CD38]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FF9B381C828]
lea       rcx,[rbp+40]
call      qword ptr [7FF9B2EFC210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,1E66C805B80
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FF9B3157550]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,4097C240AAF9
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B2FEFE40]
mov       rcx,4097C240AAF9
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FF9B2EF5B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,esi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FF9B30DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FF9B338F6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FF9B303E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FF9B303E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      00007FF9B2E41E60
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,226FE530008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FF9B311C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,20BCA000428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,24C4FF978F0
call      qword ptr [7FF9B3054810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],ebp
M00_L02
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B310E778]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbp,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbp+8]
call      CORINFO_HELP_ASSIGN_REF
xor       r8d,r8d
mov       [rbp+8],r8
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B311CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FF9B2DD7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FF9B2D34000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FF9B38CEA78]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33CF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33CF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,80E32C6A77B6
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FF9B3054228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      00007FF9B2E81E60
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,80E32C6A77B6
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B302FD20]
mov       rcx,80E32C6A77B6
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FF9B2FFF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FF9B2FFF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FF9B38CC018]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,20BCA000298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FF9B385C720]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FF9B3856508]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FF9B389D068]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FF9B385C828]
lea       rcx,[rbp+40]
call      qword ptr [7FF9B2F3C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,20BBE003B88
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FF9B3197550]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,80E32C6A77B6
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B302FE40]
mov       rcx,80E32C6A77B6
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      00007FF9B2E81E60
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33CF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,24C4FF80008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FF9B2F35B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FF9B311CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FF9B2F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D34000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FF9B33CF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FF9B2F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FF9B307E9D0]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FF9B307E9E8]
int       3
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FF9B30FC150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,145D1400428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,186632F78F0
call      qword ptr [7FF9B3034810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L01
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L02
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L02
M00_L01
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L02
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FF9B2DB7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FF9B38AE9E8]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,0FF6BEF3B5FF7
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FF9B3034228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      00007FF9B2E61E60
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,0FF6BEF3B5FF7
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B300FD20]
mov       rcx,0FF6BEF3B5FF7
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FF9B2FDF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FF9B2FDF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FF9B38A7D98]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,145D1400298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FF9B383C720]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FF9B3836508]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FF9B387D068]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FF9B383C828]
lea       rcx,[rbp+40]
call      qword ptr [7FF9B2F1C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,145D1405B80
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FF9B3177550]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,0FF6BEF3B5FF7
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B300FE40]
mov       rcx,0FF6BEF3B5FF7
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FF9B2F15B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,esi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FF9B30FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FF9B33AF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FF9B305E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FF9B305E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      00007FF9B2E61E60
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,186632E0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FF9B30DC150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,27521C00428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,2B5B3A27910
call      qword ptr [7FF9B3014810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],ebp
M00_L02
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30CE778]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbp,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbp+8]
call      CORINFO_HELP_ASSIGN_REF
xor       r8d,r8d
mov       [rbp+8],r8
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FF9B2D97738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FF9B38B41E0]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,0A996D9D3EBAC
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FF9B3014228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      00007FF9B2E41E60
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,0A996D9D3EBAC
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B2FEFD20]
mov       rcx,0A996D9D3EBAC
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FF9B2FBF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FF9B2FBF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FF9B388D230]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,27521C00298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FF9B381DD28]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FF9B3817948]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FF9B385E2F8]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FF9B381DE30]
lea       rcx,[rbp+40]
call      qword ptr [7FF9B2EFC210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,27521C05B80
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FF9B3157550]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,0A996D9D3EBAC
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B2FEFE40]
mov       rcx,0A996D9D3EBAC
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      00007FF9B2E41E60
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,2B5B3A10008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FF9B2EF5B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FF9B30DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FF9B338F6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FF9B303E9D0]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FF9B303E9E8]
int       3
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FF9B30EC150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,1F987C00428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,23A15B07910
call      qword ptr [7FF9B3024810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],ebp
M00_L02
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30DE778]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbp,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbp+8]
call      CORINFO_HELP_ASSIGN_REF
xor       r8d,r8d
mov       [rbp+8],r8
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FF9B2DA7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FF9B389FE70]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,13A0D0113584
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FF9B3024228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      00007FF9B2E51E60
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,13A0D0113584
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B2FFFD20]
mov       rcx,13A0D0113584
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FF9B2FCF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FF9B2FCF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FF9B389D230]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,1F987C00298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FF9B382DD28]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FF9B3827948]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FF9B386E628]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FF9B382DE30]
lea       rcx,[rbp+40]
call      qword ptr [7FF9B2F0C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,1F983C03B88
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FF9B3167550]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,13A0D0113584
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B2FFFE40]
mov       rcx,13A0D0113584
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      00007FF9B2E51E60
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,23A15AF0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FF9B2F05B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FF9B30ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FF9B339F6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FF9B304E9D0]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FF9B304E9E8]
int       3
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FF9B310C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,18E14400428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,1CEA6497910
call      qword ptr [7FF9B3044810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],ebp
M00_L02
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30FE778]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbp,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbp+8]
call      CORINFO_HELP_ASSIGN_REF
xor       r8d,r8d
mov       [rbp+8],r8
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FF9B2DC7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FF9B38BF2B8]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,820DB6B3AA58
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FF9B3044228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      00007FF9B2E71E60
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,820DB6B3AA58
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B301FD20]
mov       rcx,820DB6B3AA58
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FF9B2FEF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FF9B2FEF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FF9B38BD230]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,18E14400298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FF9B384DD28]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FF9B3847948]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FF9B388E628]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FF9B384DE30]
lea       rcx,[rbp+40]
call      qword ptr [7FF9B2F2C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,18E14405B80
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FF9B3187550]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,820DB6B3AA58
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B301FE40]
mov       rcx,820DB6B3AA58
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      00007FF9B2E71E60
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,1CEA6480008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FF9B2F25B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FF9B310CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FF9B33BF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FF9B306E9D0]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FF9B306E9E8]
int       3
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FF9B310C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,16AD2C00428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,1AB5CA87910
call      qword ptr [7FF9B3044810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],ebp
M00_L02
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30FE778]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbp,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbp+8]
call      CORINFO_HELP_ASSIGN_REF
xor       r8d,r8d
mov       [rbp+8],r8
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FF9B2DC7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FF9B38BF2B8]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,0A75B9714EEBA
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FF9B3044228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      00007FF9B2E71E60
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,0A75B9714EEBA
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B301FD20]
mov       rcx,0A75B9714EEBA
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FF9B2FEF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FF9B2FEF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FF9B38BD230]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,16AD2C00298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FF9B384DD28]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FF9B3847948]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FF9B388E628]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FF9B384DE30]
lea       rcx,[rbp+40]
call      qword ptr [7FF9B2F2C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,16AD2C05B80
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FF9B3187550]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,0A75B9714EEBA
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B301FE40]
mov       rcx,0A75B9714EEBA
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      00007FF9B2E71E60
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,1AB5CA70008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FF9B2F25B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FF9B310CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FF9B33BF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FF9B306E9D0]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FF9B306E9E8]
int       3
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L06
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FF9B30EC150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,1D5BDC00428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,2164B9478F0
call      qword ptr [7FF9B3024810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30DE778]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      qword ptr [7FF9B3364CF0]
mov       ecx,0F
mov       rdx,7FF9B32DDAB0
call      CORINFO_HELP_STRCNS
mov       rbx,rax
mov       ecx,1C09
mov       rdx,7FF9B316BB50
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FF9B2E56B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FF9B32DDAB0
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FF9B2E56B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
call      qword ptr [7FF9B3364AE0]
mov       r8,rax
mov       rdx,rbx
mov       rcx,rsi
call      qword ptr [7FF9B3076670]
mov       rcx,rsi
call      CORINFO_HELP_THROW
int       3
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FF9B2DA7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FF9B389EF88]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,1DAB6480303F
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FF9B3024228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      00007FF9B2E51E60
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,1DAB6480303F
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B2FFFD20]
mov       rcx,1DAB6480303F
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FF9B2FCF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FF9B2FCF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FF9B389C528]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,1D5BDC00298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FF9B382C720]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FF9B3826508]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FF9B386D068]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FF9B382C828]
lea       rcx,[rbp+40]
call      qword ptr [7FF9B2F0C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,1D5BBC03B88
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FF9B3167550]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,1DAB6480303F
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B2FFFE40]
mov       rcx,1DAB6480303F
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      00007FF9B2E51E60
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,2164B930008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FF9B2F05B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FF9B30ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FF9B339F6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FF9B304E9D0]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FF9B304E9E8]
int       3
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M06_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M06_L02
test      rbx,rbx
je        short M06_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M06_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M06_L01
call      00007FF9B2E51E60
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L01
 
call      qword ptr [7FF9B304EF40]
int       3
M06_L02
 
test      rbx,rbx
je        short M06_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M06_L04
M06_L03
 
mov       rax,2164B930008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L04
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FF9B30FC150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,26680800428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,2A7128478F0
call      qword ptr [7FF9B3034810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        near ptr M00_L05
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       r15,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[r15+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [r15+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
call      qword ptr [7FF9B3374CF0]
mov       ecx,0F
mov       rdx,7FF9B32EDAB0
call      CORINFO_HELP_STRCNS
mov       rsi,rax
mov       ecx,1C09
mov       rdx,7FF9B317BAF8
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rsi
call      qword ptr [7FF9B2E66B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FF9B32EDAB0
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FF9B2E66B08]; System.String.Concat(System.String, System.String)
mov       rdi,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
call      qword ptr [7FF9B3374AE0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbp
call      qword ptr [7FF9B3086670]
mov       rcx,rbp
call      CORINFO_HELP_THROW
M00_L05
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M00_L01
M00_L06
 
mov       rcx,rsi
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M00_L02
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FF9B2DB7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FF9B38AEF88]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,5CB9CE818C9F
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FF9B3034228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      00007FF9B2E61E60
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,5CB9CE818C9F
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B300FD20]
mov       rcx,5CB9CE818C9F
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FF9B2FDF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FF9B2FDF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FF9B38AC528]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,26680800298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FF9B383C720]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FF9B3836508]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FF9B387D068]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FF9B383C828]
lea       rcx,[rbp+40]
call      qword ptr [7FF9B2F1C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,26680805B80
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FF9B31774F8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,5CB9CE818C9F
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B300FE40]
mov       rcx,5CB9CE818C9F
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      00007FF9B2E61E60
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,2A712830008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M04_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M04_L02
test      rbx,rbx
je        short M04_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M04_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M04_L01
call      00007FF9B2E61E60
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L01
 
call      qword ptr [7FF9B305EF40]
int       3
M04_L02
 
test      rbx,rbx
je        short M04_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M04_L04
M04_L03
 
mov       rax,2A712830008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FF9B2F15B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M06_L03
cmp       r8d,esi
jl        near ptr M06_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M06_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M06_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M06_L00
 
cmp       ebp,r10d
ja        near ptr M06_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M06_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FF9B30FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M06_L07
M06_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M06_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FF9B33AF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M06_L04
 
test      eax,eax
jne       short M06_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M06_L00
M06_L05
 
call      qword ptr [7FF9B305E9D0]
int       3
M06_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M06_L02
M06_L07
 
call      qword ptr [7FF9B305E9E8]
int       3
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L04
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FF9B30FC150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,137DE800428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,178707C78F0
call      qword ptr [7FF9B3034810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        near ptr M00_L05
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       r15,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[r15+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [r15+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
call      qword ptr [7FF9B3374CF0]
mov       ecx,0F
mov       rdx,7FF9B32EDAB0
call      CORINFO_HELP_STRCNS
mov       rsi,rax
mov       ecx,1C09
mov       rdx,7FF9B317BB50
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rsi
call      qword ptr [7FF9B2E66B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FF9B32EDAB0
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FF9B2E66B08]; System.String.Concat(System.String, System.String)
mov       rdi,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
call      qword ptr [7FF9B3374AE0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbp
call      qword ptr [7FF9B3086670]
mov       rcx,rbp
call      CORINFO_HELP_THROW
M00_L05
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M00_L01
M00_L06
 
mov       rcx,rsi
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M00_L02
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FF9B2DB7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FF9B38AEB50]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,332CC32F7E1
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FF9B3034228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      00007FF9B2E61E60
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,332CC32F7E1
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B300FD20]
mov       rcx,332CC32F7E1
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FF9B2FDF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FF9B2FDF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FF9B38AC0F0]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,137DE800298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FF9B383C720]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FF9B3836508]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FF9B387CD38]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FF9B383C828]
lea       rcx,[rbp+40]
call      qword ptr [7FF9B2F1C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,137DE805B80
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FF9B3177550]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,332CC32F7E1
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B300FE40]
mov       rcx,332CC32F7E1
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      00007FF9B2E61E60
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,178707B0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M04_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M04_L02
test      rbx,rbx
je        short M04_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M04_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M04_L01
call      00007FF9B2E61E60
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L01
 
call      qword ptr [7FF9B305EF40]
int       3
M04_L02
 
test      rbx,rbx
je        short M04_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M04_L04
M04_L03
 
mov       rax,178707B0008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FF9B2F15B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M06_L03
cmp       r8d,esi
jl        near ptr M06_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M06_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M06_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M06_L00
 
cmp       ebp,r10d
ja        near ptr M06_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M06_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FF9B30FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M06_L07
M06_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M06_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FF9B33AF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M06_L04
 
test      eax,eax
jne       short M06_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M06_L00
M06_L05
 
call      qword ptr [7FF9B305E9D0]
int       3
M06_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M06_L02
M06_L07
 
call      qword ptr [7FF9B305E9E8]
int       3
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L06
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FF9B310C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,1FBED400428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,23C7B2C78F0
call      qword ptr [7FF9B3044810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30FE778]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      qword ptr [7FF9B3384CF0]
mov       ecx,0F
mov       rdx,7FF9B32FDAB0
call      CORINFO_HELP_STRCNS
mov       rbx,rax
mov       ecx,1C09
mov       rdx,7FF9B318BB50
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FF9B2E76B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FF9B32FDAB0
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FF9B2E76B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
call      qword ptr [7FF9B3384AE0]
mov       r8,rax
mov       rdx,rbx
mov       rcx,rsi
call      qword ptr [7FF9B3096670]
mov       rcx,rsi
call      CORINFO_HELP_THROW
int       3
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FF9B2DC7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FF9B38BEF58]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,0FEF1F91F099A
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FF9B3044228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      00007FF9B2E71E60
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,0FEF1F91F099A
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B301FD20]
mov       rcx,0FEF1F91F099A
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FF9B2FEF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FF9B2FEF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FF9B38BC318]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,1FBED400298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FF9B384C720]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FF9B3846508]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FF9B388D068]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FF9B384C828]
lea       rcx,[rbp+40]
call      qword ptr [7FF9B2F2C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,1FBE9403B88
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FF9B3187550]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,0FEF1F91F099A
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B301FE40]
mov       rcx,0FEF1F91F099A
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      00007FF9B2E71E60
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,23C7B2B0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FF9B2F25B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FF9B310CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FF9B33BF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FF9B306E9D0]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FF9B306E9E8]
int       3
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M06_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M06_L02
test      rbx,rbx
je        short M06_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M06_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M06_L01
call      00007FF9B2E71E60
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L01
 
call      qword ptr [7FF9B306EF40]
int       3
M06_L02
 
test      rbx,rbx
je        short M06_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M06_L04
M06_L03
 
mov       rax,23C7B2B0008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L06
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FF9B30EC150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,26AB0000428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,2AB3E057910
call      qword ptr [7FF9B3024810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30DE778]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      qword ptr [7FF9B3364CF0]
mov       ecx,0F
mov       rdx,7FF9B32DDAB0
call      CORINFO_HELP_STRCNS
mov       rbx,rax
mov       ecx,1C09
mov       rdx,7FF9B316BB50
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FF9B2E56B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FF9B32DDAB0
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FF9B2E56B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
call      qword ptr [7FF9B3364AE0]
mov       r8,rax
mov       rdx,rbx
mov       rcx,rsi
call      qword ptr [7FF9B3076670]
mov       rcx,rsi
call      CORINFO_HELP_THROW
int       3
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FF9B2DA7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FF9B38C4720]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,93D0CBAF794F
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FF9B3024228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      00007FF9B2E51E60
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,93D0CBAF794F
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B2FFFD20]
mov       rcx,93D0CBAF794F
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FF9B2FCF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FF9B2FCF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FF9B389D788]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,26AB0000298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FF9B382DD28]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FF9B3827948]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FF9B386E2F8]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FF9B382DE30]
lea       rcx,[rbp+40]
call      qword ptr [7FF9B2F0C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,26AAC003B88
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FF9B3167550]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,93D0CBAF794F
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B2FFFE40]
mov       rcx,93D0CBAF794F
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      00007FF9B2E51E60
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,2AB3E040008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FF9B2F05B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FF9B30ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FF9B339F6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FF9B304E9D0]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FF9B304E9E8]
int       3
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M06_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M06_L02
test      rbx,rbx
je        short M06_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M06_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M06_L01
call      00007FF9B2E51E60
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L01
 
call      qword ptr [7FF9B304EF40]
int       3
M06_L02
 
test      rbx,rbx
je        short M06_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M06_L04
M06_L03
 
mov       rax,2AB3E040008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L04
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FF9B30FC150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,18049400428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,1C0DB537910
call      qword ptr [7FF9B3034810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        near ptr M00_L05
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       r15,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[r15+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [r15+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
call      qword ptr [7FF9B3374CF0]
mov       ecx,0F
mov       rdx,7FF9B32EDAB0
call      CORINFO_HELP_STRCNS
mov       rsi,rax
mov       ecx,1C09
mov       rdx,7FF9B317BB50
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rsi
call      qword ptr [7FF9B2E66B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FF9B32EDAB0
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FF9B2E66B08]; System.String.Concat(System.String, System.String)
mov       rdi,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
call      qword ptr [7FF9B3374AE0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbp
call      qword ptr [7FF9B3086670]
mov       rcx,rbp
call      CORINFO_HELP_THROW
M00_L05
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M00_L01
M00_L06
 
mov       rcx,rsi
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M00_L02
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FF9B2DB7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FF9B38D4708]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,0D8575E84E85A
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FF9B3034228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      00007FF9B2E61E60
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,0D8575E84E85A
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B300FD20]
mov       rcx,0D8575E84E85A
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FF9B2FDF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FF9B2FDF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FF9B38AD788]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,18049400298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FF9B383DD28]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FF9B3837948]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FF9B387E2F8]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FF9B383DE30]
lea       rcx,[rbp+40]
call      qword ptr [7FF9B2F1C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,18049405B80
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FF9B3177550]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,0D8575E84E85A
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B300FE40]
mov       rcx,0D8575E84E85A
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      00007FF9B2E61E60
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,1C0DB520008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M04_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M04_L02
test      rbx,rbx
je        short M04_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M04_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M04_L01
call      00007FF9B2E61E60
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L01
 
call      qword ptr [7FF9B305EF40]
int       3
M04_L02
 
test      rbx,rbx
je        short M04_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M04_L04
M04_L03
 
mov       rax,1C0DB520008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FF9B2F15B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M06_L03
cmp       r8d,esi
jl        near ptr M06_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M06_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M06_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M06_L00
 
cmp       ebp,r10d
ja        near ptr M06_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M06_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FF9B30FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M06_L07
M06_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M06_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FF9B33AF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M06_L04
 
test      eax,eax
jne       short M06_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M06_L00
M06_L05
 
call      qword ptr [7FF9B305E9D0]
int       3
M06_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M06_L02
M06_L07
 
call      qword ptr [7FF9B305E9E8]
int       3
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L04
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FF9B30EC150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,19DA8000428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,1DE3A067910
call      qword ptr [7FF9B3024810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        near ptr M00_L05
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30DE778]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       r15,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[r15+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [r15+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
call      qword ptr [7FF9B3364CF0]
mov       ecx,0F
mov       rdx,7FF9B32DDAB0
call      CORINFO_HELP_STRCNS
mov       rsi,rax
mov       ecx,1C09
mov       rdx,7FF9B316BB50
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rsi
call      qword ptr [7FF9B2E56B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FF9B32DDAB0
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FF9B2E56B08]; System.String.Concat(System.String, System.String)
mov       rdi,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
call      qword ptr [7FF9B3364AE0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbp
call      qword ptr [7FF9B3076670]
mov       rcx,rbp
call      CORINFO_HELP_THROW
M00_L05
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M00_L01
M00_L06
 
mov       rcx,rsi
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M00_L02
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FF9B2DA7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FF9B38C4708]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,6D70A6353B78
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FF9B3024228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      00007FF9B2E51E60
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,6D70A6353B78
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B2FFFD20]
mov       rcx,6D70A6353B78
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FF9B2FCF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FF9B2FCF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FF9B389D788]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,19DA8000298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FF9B382DD28]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FF9B3827948]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FF9B386E2F8]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FF9B382DE30]
lea       rcx,[rbp+40]
call      qword ptr [7FF9B2F0C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,19DA8005B80
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FF9B3167550]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,6D70A6353B78
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B2FFFE40]
mov       rcx,6D70A6353B78
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      00007FF9B2E51E60
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,1DE3A050008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M04_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M04_L02
test      rbx,rbx
je        short M04_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M04_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M04_L01
call      00007FF9B2E51E60
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L01
 
call      qword ptr [7FF9B304EF40]
int       3
M04_L02
 
test      rbx,rbx
je        short M04_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M04_L04
M04_L03
 
mov       rax,1DE3A050008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FF9B2F05B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M06_L03
cmp       r8d,esi
jl        near ptr M06_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M06_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M06_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M06_L00
 
cmp       ebp,r10d
ja        near ptr M06_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M06_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FF9B30ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M06_L07
M06_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M06_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FF9B339F6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M06_L04
 
test      eax,eax
jne       short M06_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M06_L00
M06_L05
 
call      qword ptr [7FF9B304E9D0]
int       3
M06_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M06_L02
M06_L07
 
call      qword ptr [7FF9B304E9E8]
int       3
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L06
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FF9B30DC150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,24D4A800428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,28DD87F7910
call      qword ptr [7FF9B3014810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30CE778]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      qword ptr [7FF9B3354CF0]
mov       ecx,0F
mov       rdx,7FF9B32CD0D8
call      CORINFO_HELP_STRCNS
mov       rbx,rax
mov       ecx,1C09
mov       rdx,7FF9B315B900
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FF9B2E46B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FF9B32CD0D8
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FF9B2E46B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
call      qword ptr [7FF9B3354AE0]
mov       r8,rax
mov       rdx,rbx
mov       rcx,rsi
call      qword ptr [7FF9B3066670]
mov       rcx,rsi
call      CORINFO_HELP_THROW
int       3
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FF9B2D97738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FF9B388FB40]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,0C1FFE8214638
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FF9B3014228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      00007FF9B2E41E60
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,0C1FFE8214638
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B2FEFD20]
mov       rcx,0C1FFE8214638
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FF9B2FBF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FF9B2FBF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FF9B388D788]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,24D4A800298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FF9B381DD28]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FF9B3817948]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FF9B385E2F8]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FF9B381DE30]
lea       rcx,[rbp+40]
call      qword ptr [7FF9B2EFC210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,24D46803B50
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FF9B3121B68]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,0C1FFE8214638
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FF9B2FEFE40]
mov       rcx,0C1FFE8214638
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      00007FF9B2E41E60
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,28DD87E0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FF9B2EF5B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FF9B30DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FF9B338F6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FF9B303E9D0]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FF9B303E9E8]
int       3
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M06_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M06_L02
test      rbx,rbx
je        short M06_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M06_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M06_L01
call      00007FF9B2E41E60
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L01
 
call      qword ptr [7FF9B303EF40]
int       3
M06_L02
 
test      rbx,rbx
je        short M06_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M06_L04
M06_L03
 
mov       rax,28DD87E0008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,40
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,148FC400428
mov       r8,[r8]
mov       [rsp+38],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],1
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,1898E1978F0
call      qword ptr [7FF9B2E56C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r15d,[rax+8]
test      r15d,r15d
je        short M00_L04
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L02
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30DE778]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FF9B38CF1F8]
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ecx,[rdi-1]
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FF9B38CF1F8]
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       ebp,ebp
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FF9B38CF1F8]
test      eax,eax
je        short M00_L13
M00_L12
 
inc       ebp
cmp       edi,ebp
jg        short M00_L10
M00_L13
 
lea       r14d,[rdi-1]
cmp       r14d,ebp
jl        near ptr M00_L20
mov       ecx,r14d
or        ecx,ebp
jl        short M00_L17
cmp       edi,r14d
jle       short M00_L17
M00_L14
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       ecx,ecx
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FF9B38CF1F8]
test      eax,eax
je        short M00_L20
M00_L16
 
dec       r14d
cmp       r14d,ebp
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       r14d,edi
jae       near ptr M00_L25
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       ecx,ecx
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FF9B38CF1F8]
test      eax,eax
je        short M00_L20
M00_L19
 
dec       r14d
cmp       r14d,ebp
jge       short M00_L17
M00_L20
 
sub       r14d,ebp
inc       r14d
cmp       edi,r14d
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+30],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,40
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L22
 
test      r14d,r14d
je        short M00_L23
mov       ecx,r14d
call      00007FF9B2E51E60
mov       rdi,rax
mov       r8d,r14d
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,ebp
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,1898E180008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,69529C5F31D5
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B30E70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30E71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,69529C5F31D5
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30E7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30766E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2F05B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B304E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B304E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E51E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1898E180008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,40
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,24834000428
mov       r8,[r8]
mov       [rsp+38],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],1
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,288C5D578F0
call      qword ptr [7FF9B2E46C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r15d,[rax+8]
test      r15d,r15d
je        short M00_L04
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L02
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FF9B30DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30CE778]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FF9B38BEAF0]
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FF9B38BEAF0]
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L12
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L14
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
je        short M00_L12
M00_L11
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L12
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        near ptr M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L13
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L14
 
call      qword ptr [7FF9B38BEAF0]
test      eax,eax
je        short M00_L12
jmp       short M00_L11
M00_L15
 
call      qword ptr [7FF9B38BEAF0]
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L13
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FF9B38BEAF0]
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       r15,rsi
M00_L21
 
mov       [rsp+30],r15
mov       rdi,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rdi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rdi+8],rax
add       rsp,40
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      00007FF9B2E41E60
mov       r15,rax
mov       r8d,ebp
cmp       [r15],r15b
lea       rcx,[r15+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       r15,288C5D40008
jmp       short M00_L21
M00_L24
 
mov       r15,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,8C91634DA91
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B30D70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30D71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,8C91634DA91
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30D7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30666E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2EF5B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B303E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B303E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E41E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,288C5D40008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,23096400428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,271284D78F0
call      qword ptr [7FF9B2E76C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30FE778]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       ecx,ecx
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FF9B38EEBE0]
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FF9B38EEBE0]
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FF9B38EEBE0]
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L19
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L16
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
je        short M00_L19
M00_L15
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L19
M00_L16
 
call      qword ptr [7FF9B38EEBE0]
test      eax,eax
je        short M00_L19
jmp       short M00_L15
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L22
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
je        short M00_L19
M00_L18
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L19
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L21
mov       r15,rsi
M00_L20
 
mov       [rsp+38],r15
mov       rdi,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rdi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rdi+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L21
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      00007FF9B2E71E60
mov       r15,rax
mov       r8d,ebp
cmp       [r15],r15b
lea       rcx,[r15+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L20
M00_L22
 
call      qword ptr [7FF9B38EEBE0]
test      eax,eax
je        short M00_L19
jmp       short M00_L18
M00_L23
 
mov       r15,271284C0008
jmp       short M00_L20
M00_L24
 
mov       r15,rsi
jmp       short M00_L20
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,21C65E067CD2
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B31070D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B31071E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,21C65E067CD2
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B3107318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30966E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2F25B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B310CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B306E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B306E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E71E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,271284C0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,2445DC00428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,284EFC278F0
call      qword ptr [7FF9B2E66C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FF9B38DEBE0]
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FF9B38DEBE0]
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FF9B38DEBE0]
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FF9B38DEBE0]
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FF9B38DEBE0]
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+38],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      00007FF9B2E61E60
mov       rdi,rax
mov       r8d,ebp
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,284EFC10008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0CBDC4AE3CC1F
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B30F70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30F71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0CBDC4AE3CC1F
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30F7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30866E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2F15B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B305E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B305E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E61E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,284EFC10008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,1BA03000428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,1FA94D77910
call      qword ptr [7FF9B2E56C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30DE778]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FF9B38CF528]
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FF9B38CF528]
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FF9B38CF528]
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FF9B38CF528]
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FF9B38CF528]
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+38],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      00007FF9B2E51E60
mov       rdi,rax
mov       r8d,ebp
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,1FA94D60008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0B477A768EA76
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B30E70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30E71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0B477A768EA76
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30E7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30766E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2F05B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B304E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B304E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E51E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1FA94D60008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,2B803800428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,2F8957B7910
call      qword ptr [7FF9B2E76C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30FE778]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FF9B38EF528]
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FF9B38EF528]
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FF9B38EF528]
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FF9B38EF528]
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FF9B38EF528]
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+38],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      00007FF9B2E71E60
mov       rdi,rax
mov       r8d,ebp
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,2F8957A0008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,3B992D0D733B
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B31070D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B31071E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,3B992D0D733B
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B3107318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30966E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2F25B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B310CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B306E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B306E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E71E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2F8957A0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,18F24000428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,1CFB5E57910
call      qword ptr [7FF9B2E46C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30CE778]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FF9B38BF960]
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FF9B38BF960]
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FF9B38BF960]
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FF9B38BF960]
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FF9B38BF960]
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+38],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      00007FF9B2E41E60
mov       rdi,rax
mov       r8d,ebp
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,1CFB5E40008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,2ABC25B6C1F8
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B30D70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30D71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,2ABC25B6C1F8
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30D7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30666E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2EF5B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B303E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B303E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E41E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1CFB5E40008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,2242A000428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,264B7E37910
call      qword ptr [7FF9B2E46C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30CE778]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FF9B38BF528]
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FF9B38BF528]
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FF9B38BF528]
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FF9B38BF528]
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FF9D5502E50
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FF9B38BF528]
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+38],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      00007FF9B2E41E60
mov       rdi,rax
mov       r8d,ebp
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,264B7E20008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,5AF71A9CD4E0
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B30D70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30D71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,5AF71A9CD4E0
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30D7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30666E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2EF5B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B303E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B303E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E41E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,264B7E20008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,40
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,1D92E800428
mov       r8,[r8]
mov       [rsp+38],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],1
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,219C08E78F0
call      qword ptr [7FF9B2E66C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r15d,[rax+8]
test      r15d,r15d
je        short M00_L04
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L02
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,40
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,9412DABCF723
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B30F70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30F71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,9412DABCF723
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30F7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30866E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2F15B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B305E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B305E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E61E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,219C08D0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,239AF000428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,27A3CE078F0
call      qword ptr [7FF9B2E56C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30DE778]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,3C370CB792B1
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B30E70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30E71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,3C370CB792B1
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30E7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30766E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2F05B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B304E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B304E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E51E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,27A3CDF0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,1C5C8400428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,2065A3B78F0
call      qword ptr [7FF9B2E76C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30FE778]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0BE93AA6CB2A2
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B31070D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B31071E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0BE93AA6CB2A2
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B3107318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30966E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2F25B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B310CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B306E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B306E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E71E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2065A3A0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,15639000428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,196CB0B78F0
call      qword ptr [7FF9B2E76C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30FE778]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0ED64D84644CA
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B31070D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B31071E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0ED64D84644CA
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B3107318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30966E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2F25B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B310CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B306E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B306E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E71E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,196CB0A0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,158A8800428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,1993A667910
call      qword ptr [7FF9B2E66C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0EE6660886D8F
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B30F70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30F71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0EE6660886D8F
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30F7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30866E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2F15B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B305E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B305E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E61E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1993A650008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,1D2D3C00428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,21365B17910
call      qword ptr [7FF9B2E66C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0A86BE799B1AE
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B30F70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30F71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0A86BE799B1AE
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30F7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30866E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2F15B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B305E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B305E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E61E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,21365B00008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,15A5E800428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,19AEC957910
call      qword ptr [7FF9B2E46C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30CE778]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,4F11F4E442FE
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B30D70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30D71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,4F11F4E442FE
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30D7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30666E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2EF5B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B303E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B303E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E41E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,19AEC940008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,1B8B9C00428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,1F94BD97910
call      qword ptr [7FF9B2E56C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30DE778]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0B33616EC2CF4
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B30E70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30E71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0B33616EC2CF4
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30E7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30766E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2F05B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B304E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B304E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E51E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1F94BD80008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,50
vzeroupper
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
vmovdqa   xmmword ptr [rsp+40],xmm4
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,18D31400428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+40],xmm0
mov       [rsp+40],rbp
mov       [rsp+48],rax
lea       r8,[rsp+40]
mov       [rsp+28],r8
mov       dword ptr [rsp+30],2
lea       r8,[rsp+28]
mov       rdx,1CDC33178F0
call      qword ptr [7FF9B2E46C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       ebp,[rax+8]
test      ebp,ebp
je        short M00_L04
mov       r8,[rsi+8]
mov       r14d,[rsi+18]
lea       ecx,[r14+rbp]
cmp       ecx,[r8+8]
ja        short M00_L03
movsxd    rcx,r14d
lea       rcx,[r8+rcx*2+10]
cmp       ebp,2
jle       short M00_L02
movsxd    r8,ebp
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
add       ebp,r14d
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       ebp,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
mov       r8d,ebp
call      qword ptr [7FF9B30DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30CE778]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,50
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0A2A038680079
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B30D70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30D71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0A2A038680079
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30D7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30666E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2EF5B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B303E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B303E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E41E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1CDC3300008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,2EE50800428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,32EE28278F0
call      qword ptr [7FF9B2E66C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,6DEA72265290
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B30F70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30F71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,6DEA72265290
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30F7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30866E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2F15B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B305E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B305E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E61E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,32EE2810008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,19138C00428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,1D1C6B878F0
call      qword ptr [7FF9B2E66C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,3D09CC72A247
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B30F70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30F71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,3D09CC72A247
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30F7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30866E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2F15B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B305E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B305E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E61E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1D1C6B70008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,23C2B400428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,27CBD1678F0
call      qword ptr [7FF9B2E46C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30CE778]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0D8083688176
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B30D70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30D71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0D8083688176
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30D7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30666E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2EF5B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B303E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B303E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E41E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,27CBD150008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,21FE8C00428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,2607AC97910
call      qword ptr [7FF9B2E46C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30CE778]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,40FC4A3D1523
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B30D70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30D71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,40FC4A3D1523
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30D7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30666E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2EF5B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B303E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B303E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E41E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2607AC80008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,1B726000428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,1F7B7DD7910
call      qword ptr [7FF9B2E76C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30FE778]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,492D4B061FC5
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B31070D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B31071E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,492D4B061FC5
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B3107318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30966E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2F25B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B310CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B306E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B306E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E71E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1F7B7DC0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,21CF3C00428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,25D85D57910
call      qword ptr [7FF9B2E76C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30FE778]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0D6278D57E951
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B31070D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B31071E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0D6278D57E951
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B3107318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30966E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2F25B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B310CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B306E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B306E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E71E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,25D85D40008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,2459E800428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,28630627910
call      qword ptr [7FF9B2E66C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,3C6F0B389F8D
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B30F70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30F71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,3C6F0B389F8D
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30F7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30866E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2F15B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B305E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B305E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E61E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,28630610008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,50
vzeroupper
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
vmovdqa   xmmword ptr [rsp+40],xmm4
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,1F5AB000428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+40],xmm0
mov       [rsp+40],rcx
mov       rcx,2363D1A9160
mov       [rsp+48],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],2
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,2363D1B78F0
call      qword ptr [7FF9B2E76C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       ebp,[rax+8]
test      ebp,ebp
je        short M00_L04
mov       r8,[rsi+8]
mov       r14d,[rsi+18]
lea       ecx,[r14+rbp]
cmp       ecx,[r8+8]
ja        short M00_L03
movsxd    rcx,r14d
lea       rcx,[r8+rcx*2+10]
cmp       ebp,2
jle       short M00_L02
movsxd    r8,ebp
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
add       ebp,r14d
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       ebp,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
mov       r8d,ebp
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30FE778]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,50
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,2B396B65978F
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B31070D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B31071E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,2B396B65978F
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B3107318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30966E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2F25B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B310CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B306E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B306E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E71E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2363D1A0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,15359800428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,193EB969160
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,193EB9778F0
call      qword ptr [7FF9B2E46C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30CE778]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,397B1E87A789
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B30D70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30D71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,397B1E87A789
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30D7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30666E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2EF5B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B303E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B303E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E41E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,193EB960008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,1A9DEC00428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,1EA6CD39160
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,1EA6CD478F0
call      qword ptr [7FF9B2E56C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30DE778]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0D00DC2B9533F
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B30E70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30E71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0D00DC2B9533F
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30E7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30766E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2F05B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B304E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B304E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E51E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1EA6CD30008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,2146B800428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,254FD5E9160
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,254FD5F78F0
call      qword ptr [7FF9B2E76C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30FE778]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,49EB3DD87F96
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B31070D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B31071E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,49EB3DD87F96
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B3107318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30966E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2F25B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B310CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B306E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B306E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E71E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,254FD5E0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,1F2D8400428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,23362489160
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,23362497910
call      qword ptr [7FF9B2E66C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0D8B535B99FD5
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B30F70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30F71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0D8B535B99FD5
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30F7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30866E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2F15B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B305E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B305E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E61E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,23362480008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,26136400428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,2A1C8139160
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,2A1C8147910
call      qword ptr [7FF9B2E66C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0C12BF335242E
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B30F70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30F71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0C12BF335242E
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30F7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30866E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2F15B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B305E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B305E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E61E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2A1C8130008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,12A04000428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,12982D49160
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,12982D57910
call      qword ptr [7FF9B2E56C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30DE778]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,90B9C09716FF
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B30E70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30E71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,90B9C09716FF
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30E7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30766E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2F05B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B304E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B304E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E51E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,12982D40008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L07
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,225C1000428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,2664EF39160
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,2664EF47910
call      qword ptr [7FF9B2E56C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M00_L06
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30DE778]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
jmp       short M00_L01
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,46F4257104B9
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FF9B30E70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30E71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,46F4257104B9
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FF9B30E7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FF9B30766E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FF9B2F05B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B304E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B304E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E51E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2664EF30008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FF9B38B7D98]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-58],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
cmp       dword ptr [rbx+8],0
je        near ptr M01_L13
mov       rcx,1C4C1408B58
mov       r14,[rcx]
mov       rcx,[r14+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r14+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r15,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r15],r15b
mov       rcx,r15
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-50],r15
mov       r13d,[rbx+8]
xor       r12d,r12d
test      r13d,r13d
jle       near ptr M01_L10
mov       r8d,[rbx+8]
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r14d,[r8+8]
test      r14d,r14d
je        short M01_L06
mov       r8,[r15+8]
mov       eax,[r15+18]
mov       [rbp-44],eax
lea       ecx,[rax+r14]
cmp       ecx,[r8+8]
ja        short M01_L05
movsxd    rcx,eax
lea       rcx,[r8+rcx*2+10]
cmp       r14d,2
jg        short M01_L03
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r14d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r14d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       eax,r14d
add       eax,[rbp-44]
mov       [r15+18],eax
jmp       short M01_L06
M01_L05
 
mov       rcx,r15
mov       r8d,r14d
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r13d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,20553541C14
mov       rcx,[r15+8]
mov       r8d,[r15+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r15+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r15
call      qword ptr [7FF9B310C3D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r15
mov       r8d,2
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r13d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r15
call      qword ptr [7FF9B30FE778]; System.Text.StringBuilder.ToString()
mov       [rbp-58],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-58]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,20553540008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r14+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEF28]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r14,2C
lock dec  dword ptr [r14]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r14+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r15,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,1C4C1408B58
mov       r14,[rcx]
mov       r15,[r14+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r15+18],rcx
jne       short M01_L17
mov       rbx,[rbp-50]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r15+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-50]
mov       rcx,[r15+8]
call      qword ptr [r15+18]
test      eax,eax
mov       rbx,[rbp-50]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r14+20],0
jne       short M01_L19
lea       rcx,[r14+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r14+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r14+28]
jg        short M01_L20
mov       rcx,[r14+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEEF8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r14,2C
lock dec  dword ptr [r14]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FF9B38A7618]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-58],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
cmp       dword ptr [rbx+8],0
je        near ptr M01_L13
mov       rcx,2DE2A008B58
mov       r14,[rcx]
mov       rcx,[r14+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r14+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r15,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r15],r15b
mov       rcx,r15
xor       edx,edx
call      qword ptr [7FF9B30FC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-50],r15
mov       r13d,[rbx+8]
xor       r12d,r12d
test      r13d,r13d
jle       near ptr M01_L10
mov       r8d,[rbx+8]
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r14d,[r8+8]
test      r14d,r14d
je        short M01_L06
mov       r8,[r15+8]
mov       eax,[r15+18]
mov       [rbp-44],eax
lea       ecx,[rax+r14]
cmp       ecx,[r8+8]
ja        short M01_L05
movsxd    rcx,eax
lea       rcx,[r8+rcx*2+10]
cmp       r14d,2
jg        short M01_L03
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r14d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r14d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       eax,r14d
add       eax,[rbp-44]
mov       [r15+18],eax
jmp       short M01_L06
M01_L05
 
mov       rcx,r15
mov       r8d,r14d
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r13d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,31EBBDB1C14
mov       rcx,[r15+8]
mov       r8d,[r15+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r15+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r15
call      qword ptr [7FF9B30FC3D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r15
mov       r8d,2
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r13d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r15
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rbp-58],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-58]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,31EBBDB0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r14+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FF9B35CEC10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r14,2C
lock dec  dword ptr [r14]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r14+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r15,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,2DE2A008B58
mov       r14,[rcx]
mov       r15,[r14+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r15+18],rcx
jne       short M01_L17
mov       rbx,[rbp-50]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r15+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FF9B30FC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-50]
mov       rcx,[r15+8]
call      qword ptr [r15+18]
test      eax,eax
mov       rbx,[rbp-50]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r14+20],0
jne       short M01_L19
lea       rcx,[r14+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r14+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r14+28]
jg        short M01_L20
mov       rcx,[r14+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FF9B35CEBE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r14,2C
lock dec  dword ptr [r14]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FF9B38A7618]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,19FF0008B58
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FF9B30FC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,1E0820A1C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FF9B30FC3D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,1E0820A0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FF9B35CEFA0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,19FF0008B58
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FF9B30FC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FF9B35CEF70]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FF9B3897D98]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,1FDB4408B58
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FF9B30EC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,23E46261C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FF9B30EC3D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FF9B30DE778]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,23E46260008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FF9B35BEF28]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,1FDB4408B58
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FF9B30EC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FF9B35BEEF8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FF9B38BD230]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,28EE1008B58
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,2CF6F0A1C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FF9B310C3D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FF9B30FE778]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,2CF6F0A0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEFA0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,28EE1008B58
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEF70]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FF9B389D230]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,2D15C808B58
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FF9B30EC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,311EE951C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FF9B30EC3D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FF9B30DE778]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,311EE950008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FF9B35BEF28]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,2D15C808B58
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FF9B30EC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FF9B35BEEF8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FF9B389D230]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,2AA22808B58
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FF9B30EC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,2EAB46C1C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FF9B30EC3D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FF9B30DE778]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,2EAB46C0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FF9B35BEF28]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,2AA22808B58
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FF9B30EC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FF9B35BEEF8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FF9B38AD230]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,21202006B60
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FF9B30FC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,25293EF1C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FF9B30FC3D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,25293EF0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FF9B35CEF28]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,21202006B60
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FF9B30FC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FF9B35CEEF8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,2217EE89160
call      qword ptr [7FF9B38B7DB0]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		delimiter ??= ControlChars.CommaSpace;
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-58],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rsi,rcx
mov       rdi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
cmp       dword ptr [rbx+8],0
je        near ptr M01_L13
mov       rcx,2217EE89160
test      rsi,rsi
cmove     rsi,rcx
mov       rcx,1E0ED008B58
mov       r14,[rcx]
mov       rcx,[r14+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r14+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r15,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r15],r15b
mov       rcx,r15
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-50],r15
mov       r13d,[rbx+8]
xor       r12d,r12d
test      r13d,r13d
jle       near ptr M01_L10
mov       r8d,[rbx+8]
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r14d,[r8+8]
test      r14d,r14d
je        short M01_L06
mov       r8,[r15+8]
mov       eax,[r15+18]
mov       [rbp-44],eax
lea       ecx,[rax+r14]
cmp       ecx,[r8+8]
ja        short M01_L05
movsxd    rcx,eax
lea       rcx,[r8+rcx*2+10]
cmp       r14d,2
jg        short M01_L03
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r14d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r14d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
add       r14d,[rbp-44]
mov       [r15+18],r14d
jmp       short M01_L06
M01_L05
 
mov       rcx,r15
mov       r8d,r14d
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r13d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rdi],0
je        short M01_L07
mov       rdx,2217EE81C14
mov       rcx,[r15+8]
mov       r8d,[r15+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r15+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r15
mov       rdx,rsi
call      qword ptr [7FF9B310C2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r15
mov       r8d,2
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r13d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r15
call      qword ptr [7FF9B30FE778]; System.Text.StringBuilder.ToString()
mov       [rbp-58],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-58]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,2217EE80008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r14+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEF28]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r14,2C
lock dec  dword ptr [r14]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r14+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r15,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,1E0ED008B58
mov       r14,[rcx]
mov       r15,[r14+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r15+18],rcx
jne       short M01_L17
mov       rbx,[rbp-50]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r15+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-50]
mov       rcx,[r15+8]
call      qword ptr [r15+18]
test      eax,eax
mov       rbx,[rbp-50]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r14+20],0
jne       short M01_L19
lea       rcx,[r14+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r14+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r14+28]
jg        short M01_L20
mov       rcx,[r14+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEEF8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r14,2C
lock dec  dword ptr [r14]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,2396D0C9160
call      qword ptr [7FF9B38B7DB0]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		delimiter ??= ControlChars.CommaSpace;
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-58],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
cmp       dword ptr [rbx+8],0
je        near ptr M01_L13
mov       rcx,2396D0C9160
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,1F8DB408B58
mov       r14,[rcx]
mov       rcx,[r14+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r14+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r15,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r15],r15b
mov       rcx,r15
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-50],r15
mov       r13d,[rbx+8]
xor       r12d,r12d
test      r13d,r13d
jle       near ptr M01_L10
mov       r8d,[rbx+8]
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r14d,[r8+8]
test      r14d,r14d
je        short M01_L06
mov       r8,[r15+8]
mov       eax,[r15+18]
mov       [rbp-44],eax
lea       ecx,[rax+r14]
cmp       ecx,[r8+8]
ja        short M01_L05
movsxd    rcx,eax
lea       rcx,[r8+rcx*2+10]
cmp       r14d,2
jg        short M01_L03
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r14d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r14d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       eax,r14d
add       eax,[rbp-44]
mov       [r15+18],eax
jmp       short M01_L06
M01_L05
 
mov       rcx,r15
mov       r8d,r14d
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r13d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,2396D0C1C14
mov       rcx,[r15+8]
mov       r8d,[r15+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r15+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r15
mov       rdx,rdi
call      qword ptr [7FF9B310C2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r15
mov       r8d,2
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r13d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r15
call      qword ptr [7FF9B30FE778]; System.Text.StringBuilder.ToString()
mov       [rbp-58],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-58]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,2396D0C0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r14+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEFA0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r14,2C
lock dec  dword ptr [r14]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r14+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r15,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,1F8DB408B58
mov       r14,[rcx]
mov       r15,[r14+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r15+18],rcx
jne       short M01_L17
mov       rbx,[rbp-50]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r15+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-50]
mov       rcx,[r15+8]
call      qword ptr [r15+18]
test      eax,eax
mov       rbx,[rbp-50]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r14+20],0
jne       short M01_L19
lea       rcx,[r14+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r14+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r14+28]
jg        short M01_L20
mov       rcx,[r14+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEF70]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r14,2C
lock dec  dword ptr [r14]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,26E01CB9160
call      qword ptr [7FF9B3897DB0]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		delimiter ??= ControlChars.CommaSpace;
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,26E01CB9160
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,22D6FC06B60
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FF9B30EC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        near ptr M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,26E01CB1C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
add       r8d,2
mov       [r13+18],r8d
jmp       short M01_L09
M01_L07
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FF9B30EC2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FF9B30DE778]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,26E01CB0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FF9B35BEFA0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,22D6FC06B60
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FF9B30EC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FF9B35BEF70]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,2664C7F9160
call      qword ptr [7FF9B38A7DB0]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		delimiter ??= ControlChars.CommaSpace;
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,2664C7F9160
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,225BA808B58
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FF9B30FC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,2664C7F1C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FF9B30FC2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,2664C7F0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FF9B35CEF28]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,225BA808B58
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FF9B30FC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FF9B35CEEF8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,1F3FA949160
call      qword ptr [7FF9B38BD248]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		delimiter ??= ControlChars.CommaSpace;
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,1F3FA949160
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,1B368808B58
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,1F3FA941C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FF9B310C2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FF9B30FE778]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,1F3FA940008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEFA0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,1B368808B58
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEF70]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,25895E09160
call      qword ptr [7FF9B38BD578]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		delimiter ??= ControlChars.CommaSpace;
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,25895E09160
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,21804008B58
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,25895E01C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FF9B310C2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FF9B30FE778]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,25895E00008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEF28]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,21804008B58
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEEF8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,2661B659160
call      qword ptr [7FF9B38AD248]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		delimiter ??= ControlChars.CommaSpace;
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,2661B659160
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,22589806B60
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FF9B30FC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L08
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L10
cmp       r12d,ecx
jge       short M01_L07
cmp       byte ptr [rsi],0
je        short M01_L11
mov       rdx,2661B651C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L09
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
M01_L07
 
add       r12d,1
jo        short M01_L10
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L08
 
mov       rcx,r13
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L09
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L07
M01_L10
 
call      CORINFO_HELP_OVERFLOW
M01_L11
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FF9B30FC2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L07
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,2661B650008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FF9B35CEF28]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,22589806B60
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FF9B30FC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FF9B35CEEF8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,2107CF79160
call      qword ptr [7FF9B389D248]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		delimiter ??= ControlChars.CommaSpace;
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rbx,rdx
mov       rsi,r8
test      rsi,rsi
je        near ptr M01_L14
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M01_L14
test      rdi,rdi
je        near ptr M01_L15
M01_L00
 
mov       rcx,1CFEB008B58
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L16
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L16
M01_L01
 
mov       r13,[rbp-40]
M01_L02
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FF9B30EC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L11
M01_L03
 
mov       r8d,r12d
mov       r8,[rsi+r8*8+10]
test      r8,r8
je        short M01_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L07
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L05
M01_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L05
 
mov       [r13+18],r15d
jmp       short M01_L07
M01_L06
 
mov       rcx,r13
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L07
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L12
cmp       r12d,ecx
jge       short M01_L10
cmp       byte ptr [rbx],0
je        short M01_L08
mov       rdx,2107CF71C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L09
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L10
M01_L08
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FF9B30EC2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L10
M01_L09
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L10
 
add       r12d,1
jo        short M01_L12
cmp       r12d,r14d
jl        near ptr M01_L03
M01_L11
 
mov       rcx,r13
call      qword ptr [7FF9B30DE778]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L13
M01_L12
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L13
 
mov       rcx,rsp
call      M01_L18
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rax,2107CF70008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L15
 
mov       rdi,2107CF79160
jmp       near ptr M01_L00
M01_L16
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FF9B35BEF28]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L17
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L01
M01_L17
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L02
M01_L18
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,1CFEB008B58
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L19
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L23
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FF9B30EC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L20
M01_L19
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L23
M01_L20
 
cmp       qword ptr [r15+20],0
jne       short M01_L21
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L23
M01_L21
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L22
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FF9B35BEEF8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L23
M01_L22
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L23
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,7FF9B38A30B0
mov       r9d,1
call      qword ptr [7FF9B38975E8]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+90]
test      rbp,rbp
je        near ptr M01_L20
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L21
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L05
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L22
M01_L00
 
test      rcx,rcx
je        short M01_L05
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L05
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L04
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L05
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L05
M01_L04
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L05
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L14
M01_L06
 
test      esi,esi
je        short M01_L08
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[rsi+r13]
cmp       ecx,[r8+8]
ja        near ptr M01_L15
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L16
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        near ptr M01_L18
M01_L07
 
add       r13d,esi
mov       [rbx+18],r13d
M01_L08
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L13
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L09
 
test      rcx,rcx
je        short M01_L13
lea       rdx,[rcx+0C]
mov       r13d,[rcx+8]
test      r13d,r13d
je        short M01_L13
mov       r8,[rbx+8]
mov       r12d,[rbx+18]
lea       ecx,[r12+r13]
cmp       ecx,[r8+8]
ja        short M01_L12
movsxd    rcx,r12d
lea       rcx,[r8+rcx*2+10]
cmp       r13d,2
jg        short M01_L17
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r13d,2
je        short M01_L11
M01_L10
 
add       r13d,r12d
mov       [rbx+18],r13d
jmp       short M01_L13
M01_L11
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L10
M01_L12
 
mov       rcx,rbx
mov       r8d,r13d
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L13
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L06
M01_L14
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L15
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L08
M01_L16
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L07
M01_L17
 
movsxd    r8,r13d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L10
M01_L18
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       near ptr M01_L07
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L09
M01_L20
 
mov       ecx,6
call      qword ptr [7FF9B304ED00]
int       3
M01_L21
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L22
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,7FF9B38934E0
mov       r9d,1
call      qword ptr [7FF9B3887918]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+90]
test      rbp,rbp
je        near ptr M01_L20
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L21
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L05
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L22
M01_L00
 
test      rcx,rcx
je        short M01_L05
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L05
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L04
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L05
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FF9B30DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L05
M01_L04
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L05
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L14
M01_L06
 
test      esi,esi
je        short M01_L08
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[rsi+r13]
cmp       ecx,[r8+8]
ja        near ptr M01_L17
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L15
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        near ptr M01_L18
M01_L07
 
add       r13d,esi
mov       [rbx+18],r13d
M01_L08
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L13
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L09
 
test      rcx,rcx
je        short M01_L13
lea       rdx,[rcx+0C]
mov       r13d,[rcx+8]
test      r13d,r13d
je        short M01_L13
mov       r8,[rbx+8]
mov       r12d,[rbx+18]
lea       ecx,[r12+r13]
cmp       ecx,[r8+8]
ja        short M01_L12
movsxd    rcx,r12d
lea       rcx,[r8+rcx*2+10]
cmp       r13d,2
jg        short M01_L16
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r13d,2
je        short M01_L11
M01_L10
 
add       r13d,r12d
mov       [rbx+18],r13d
jmp       short M01_L13
M01_L11
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L10
M01_L12
 
mov       rcx,rbx
mov       r8d,r13d
call      qword ptr [7FF9B30DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L13
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L06
M01_L14
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L15
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L07
M01_L16
 
movsxd    r8,r13d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L10
M01_L17
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FF9B30DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L08
M01_L18
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       near ptr M01_L07
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L09
M01_L20
 
mov       ecx,6
call      qword ptr [7FF9B303ED00]
int       3
M01_L21
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L22
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,7FF9B38B33B8
mov       r9d,1
call      qword ptr [7FF9B38A7D68]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L20
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L21
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L05
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L22
M01_L00
 
test      rcx,rcx
je        short M01_L05
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L05
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L04
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L05
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L05
M01_L04
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L05
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L14
M01_L06
 
test      esi,esi
je        short M01_L08
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L17
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L15
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        near ptr M01_L18
M01_L07
 
mov       [rbx+18],r13d
M01_L08
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L13
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L09
 
test      rcx,rcx
je        short M01_L13
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L13
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L12
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L16
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M01_L11
M01_L10
 
mov       [rbx+18],r13d
jmp       short M01_L13
M01_L11
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L10
M01_L12
 
mov       rcx,rbx
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L13
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L06
M01_L14
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L15
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L07
M01_L16
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L10
M01_L17
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L08
M01_L18
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       near ptr M01_L07
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L09
M01_L20
 
mov       ecx,6
call      qword ptr [7FF9B305ED00]
int       3
M01_L21
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L22
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,7FF9B38B30B0
mov       r9d,1
call      qword ptr [7FF9B38A75E8]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L20
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L21
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L05
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L22
M01_L00
 
test      rcx,rcx
je        short M01_L05
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L05
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L04
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L05
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L05
M01_L04
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L05
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L18
M01_L06
 
test      esi,esi
je        short M01_L10
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        short M01_L09
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L11
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        short M01_L08
M01_L07
 
mov       [rbx+18],r13d
jmp       short M01_L10
M01_L08
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L07
M01_L09
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L10
 
mov       eax,r15d
mov       rcx,[rbp+rax*8+10]
test      rcx,rcx
je        short M01_L13
jmp       short M01_L14
M01_L11
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L07
M01_L12
 
mov       rcx,rbx
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L13
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L06
jmp       short M01_L18
M01_L14
 
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L23
M01_L15
 
test      rcx,rcx
je        short M01_L13
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L13
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L12
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L17
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M01_L19
M01_L16
 
mov       [rbx+18],r13d
jmp       short M01_L13
M01_L17
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L16
M01_L18
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L19
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L16
M01_L20
 
mov       ecx,6
call      qword ptr [7FF9B305ED00]
int       3
M01_L21
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L22
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L23
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L15
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,7FF9B38A6370
mov       r9d,1
call      qword ptr [7FF9B389D200]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L20
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L21
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L05
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L22
M01_L00
 
test      rcx,rcx
je        short M01_L05
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L05
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L04
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L05
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L05
M01_L04
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L05
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L14
M01_L06
 
test      esi,esi
je        short M01_L08
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L17
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L15
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        near ptr M01_L18
M01_L07
 
mov       [rbx+18],r13d
M01_L08
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L13
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L09
 
test      rcx,rcx
je        short M01_L13
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L13
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L12
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L16
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M01_L11
M01_L10
 
mov       [rbx+18],r13d
jmp       short M01_L13
M01_L11
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L10
M01_L12
 
mov       rcx,rbx
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L13
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L06
M01_L14
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L15
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L07
M01_L16
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L10
M01_L17
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L08
M01_L18
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       near ptr M01_L07
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L09
M01_L20
 
mov       ecx,6
call      qword ptr [7FF9B304ED00]
int       3
M01_L21
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L22
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,7FF9B38C6738
mov       r9d,1
call      qword ptr [7FF9B38BD200]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L20
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L21
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L05
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L22
M01_L00
 
test      rcx,rcx
je        short M01_L05
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L05
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L04
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L05
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L05
M01_L04
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L05
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L14
M01_L06
 
test      esi,esi
je        short M01_L08
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L17
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L15
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        near ptr M01_L18
M01_L07
 
mov       [rbx+18],r13d
M01_L08
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L13
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L09
 
test      rcx,rcx
je        short M01_L13
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L13
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L12
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L16
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M01_L11
M01_L10
 
mov       [rbx+18],r13d
jmp       short M01_L13
M01_L11
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L10
M01_L12
 
mov       rcx,rbx
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L13
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L06
M01_L14
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L15
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L07
M01_L16
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L10
M01_L17
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L08
M01_L18
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       near ptr M01_L07
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L09
M01_L20
 
mov       ecx,6
call      qword ptr [7FF9B306ED00]
int       3
M01_L21
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L22
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,7FF9B38B6370
mov       r9d,1
call      qword ptr [7FF9B38AD200]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L20
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L21
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L05
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L22
M01_L00
 
test      rcx,rcx
je        short M01_L05
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L05
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L04
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L05
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L05
M01_L04
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L05
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L14
M01_L06
 
test      esi,esi
je        short M01_L08
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L17
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L15
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        near ptr M01_L18
M01_L07
 
mov       [rbx+18],r13d
M01_L08
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L13
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L09
 
test      rcx,rcx
je        short M01_L13
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L13
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L12
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L16
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M01_L11
M01_L10
 
mov       [rbx+18],r13d
jmp       short M01_L13
M01_L11
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L10
M01_L12
 
mov       rcx,rbx
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L13
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L06
M01_L14
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L15
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L07
M01_L16
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L10
M01_L17
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L08
M01_L18
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       near ptr M01_L07
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L09
M01_L20
 
mov       ecx,6
call      qword ptr [7FF9B305ED00]
int       3
M01_L21
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L22
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,7FF9B38B6738
mov       r9d,1
call      qword ptr [7FF9B38AD200]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L20
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L21
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L05
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L22
M01_L00
 
test      rcx,rcx
je        short M01_L05
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L05
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L04
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L05
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L05
M01_L04
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L05
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L14
M01_L06
 
test      esi,esi
je        short M01_L08
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L17
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L15
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        near ptr M01_L18
M01_L07
 
mov       [rbx+18],r13d
M01_L08
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L13
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L09
 
test      rcx,rcx
je        short M01_L13
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L13
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L12
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L16
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M01_L11
M01_L10
 
mov       [rbx+18],r13d
jmp       short M01_L13
M01_L11
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L10
M01_L12
 
mov       rcx,rbx
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L13
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L06
M01_L14
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L15
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L07
M01_L16
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L10
M01_L17
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L08
M01_L18
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       near ptr M01_L07
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L09
M01_L20
 
mov       ecx,6
call      qword ptr [7FF9B305ED00]
int       3
M01_L21
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L22
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,22CC94D916C
mov       r9d,2
mov       rcx,rsi
mov       rdx,7FF9B38A30B0
call      qword ptr [7FF9B38975E8]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+90]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L01
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L02
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L02
M01_L01
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L02
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L09
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[rsi+r13]
cmp       ecx,[r8+8]
ja        short M01_L08
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L06
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L07
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L07
M01_L06
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L07
 
add       r13d,esi
mov       [rbx+18],r13d
jmp       short M01_L09
M01_L08
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        near ptr M01_L14
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L10
 
test      rcx,rcx
je        short M01_L14
lea       rdx,[rcx+0C]
mov       r13d,[rcx+8]
test      r13d,r13d
je        short M01_L14
mov       r8,[rbx+8]
mov       r12d,[rbx+18]
lea       ecx,[r12+r13]
cmp       ecx,[r8+8]
ja        short M01_L13
movsxd    rcx,r12d
lea       rcx,[r8+rcx*2+10]
cmp       r13d,2
jg        short M01_L11
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r13d,2
jne       short M01_L12
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L12
M01_L11
 
movsxd    r8,r13d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L12
 
add       r13d,r12d
mov       [rbx+18],r13d
jmp       short M01_L14
M01_L13
 
mov       rcx,rbx
mov       r8d,r13d
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L14
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
M01_L15
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FF9B304ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L10
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,252E04D916C
mov       r9d,2
mov       rcx,rsi
mov       rdx,7FF9B38A30B0
call      qword ptr [7FF9B38975E8]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+90]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L02
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L02
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L13
M01_L05
 
test      esi,esi
je        short M01_L07
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[rsi+r13]
cmp       ecx,[r8+8]
ja        near ptr M01_L14
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L10
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L06
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
M01_L06
 
add       r13d,esi
mov       [rbx+18],r13d
M01_L07
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        near ptr M01_L12
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L08
 
test      rcx,rcx
je        short M01_L12
lea       rdx,[rcx+0C]
mov       r13d,[rcx+8]
test      r13d,r13d
je        short M01_L12
mov       r8,[rbx+8]
mov       r12d,[rbx+18]
lea       ecx,[r12+r13]
cmp       ecx,[r8+8]
ja        short M01_L11
movsxd    rcx,r12d
lea       rcx,[r8+rcx*2+10]
cmp       r13d,2
jg        short M01_L15
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r13d,2
jne       short M01_L09
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L09
 
add       r13d,r12d
mov       [rbx+18],r13d
jmp       short M01_L12
M01_L10
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L06
M01_L11
 
mov       rcx,rbx
mov       r8d,r13d
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L12
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
M01_L13
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L14
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L07
M01_L15
 
movsxd    r8,r13d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L09
M01_L16
 
mov       ecx,6
call      qword ptr [7FF9B304ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L08
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,255619B916C
mov       r9d,2
mov       rcx,rsi
mov       rdx,7FF9B38A30B0
call      qword ptr [7FF9B38975E8]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L01
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L02
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L02
M01_L01
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L02
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L09
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        short M01_L08
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L06
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L07
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L07
M01_L06
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L07
 
mov       [rbx+18],r13d
jmp       short M01_L09
M01_L08
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L14
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L10
 
test      rcx,rcx
je        short M01_L14
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L14
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L13
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L11
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L12
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L12
M01_L11
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L12
 
mov       [rbx+18],r13d
jmp       short M01_L14
M01_L13
 
mov       rcx,rbx
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L14
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FF9B304ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L10
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,20001FB916C
mov       r9d,2
mov       rcx,rsi
mov       rdx,7FF9B38A33B8
call      qword ptr [7FF9B3897D68]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L01
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L02
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L02
M01_L01
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L02
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L09
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        short M01_L08
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L06
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L07
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L07
M01_L06
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L07
 
mov       [rbx+18],r13d
jmp       short M01_L09
M01_L08
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L14
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L10
 
test      rcx,rcx
je        short M01_L14
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L14
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L13
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L11
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L12
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L12
M01_L11
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L12
 
mov       [rbx+18],r13d
jmp       short M01_L14
M01_L13
 
mov       rcx,rbx
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L14
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FF9B304ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L10
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,1F30B7A916C
mov       r9d,2
mov       rcx,rsi
mov       rdx,7FF9B38C6738
call      qword ptr [7FF9B38BD200]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L06
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        near ptr M01_L06
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        near ptr M01_L06
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        near ptr M01_L05
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L02
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L06
M01_L02
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L03
 
test      rcx,rcx
je        near ptr M01_L11
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        near ptr M01_L11
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        near ptr M01_L10
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        near ptr M01_L13
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L04
 
mov       [rbx+18],r13d
jmp       near ptr M01_L11
M01_L05
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L07
 
test      esi,esi
je        short M01_L09
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L14
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L12
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L08
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
M01_L08
 
mov       [rbx+18],r13d
M01_L09
 
mov       eax,r15d
mov       rcx,[rbp+rax*8+10]
test      rcx,rcx
je        short M01_L11
mov       rax,offset MT_System.String
cmp       [rcx],rax
jne       near ptr M01_L19
jmp       near ptr M01_L03
M01_L10
 
mov       rcx,rbx
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L11
 
inc       r15d
cmp       r14d,r15d
jg        short M01_L07
jmp       short M01_L15
M01_L12
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L08
M01_L13
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L04
M01_L14
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L09
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FF9B306ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L03
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,1999D69916C
mov       r9d,2
mov       rcx,rsi
mov       rdx,7FF9B38C6738
call      qword ptr [7FF9B38BD200]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L01
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L02
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L02
M01_L01
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L02
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L09
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        short M01_L08
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L06
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L07
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L07
M01_L06
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L07
 
mov       [rbx+18],r13d
jmp       short M01_L09
M01_L08
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L14
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L10
 
test      rcx,rcx
je        short M01_L14
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L14
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L13
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L11
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L12
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L12
M01_L11
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L12
 
mov       [rbx+18],r13d
jmp       short M01_L14
M01_L13
 
mov       rcx,rbx
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L14
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FF9B306ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L10
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,263813A916C
mov       r9d,2
mov       rcx,rsi
mov       rdx,7FF9B38A6738
call      qword ptr [7FF9B389D200]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L02
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L02
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L07
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L13
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L10
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L06
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
M01_L06
 
mov       [rbx+18],r13d
M01_L07
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        near ptr M01_L12
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L08
 
test      rcx,rcx
je        short M01_L12
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L12
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L11
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L14
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L09
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L09
 
mov       [rbx+18],r13d
jmp       short M01_L12
M01_L10
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L06
M01_L11
 
mov       rcx,rbx
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L12
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
jmp       short M01_L15
M01_L13
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L07
M01_L14
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L09
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FF9B304ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L08
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,21B6483916C
mov       r9d,2
mov       rcx,rsi
mov       rdx,7FF9B38A6370
call      qword ptr [7FF9B389D200]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L01
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L02
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L02
M01_L01
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L02
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L09
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        short M01_L08
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L06
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L07
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L07
M01_L06
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L07
 
mov       [rbx+18],r13d
jmp       short M01_L09
M01_L08
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L14
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L10
 
test      rcx,rcx
je        short M01_L14
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L14
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L13
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L11
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L12
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L12
M01_L11
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L12
 
mov       [rbx+18],r13d
jmp       short M01_L14
M01_L13
 
mov       rcx,rbx
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L14
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FF9B304ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L10
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30DE778]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FF9B2F05B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FF9B304E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FF9B304E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      00007FF9B2E51E60
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,30A54F60008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FF9B2F15B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FF9B305E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FF9B305E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      00007FF9B2E61E60
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,305C21C0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FF9B2F15B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FF9B305E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FF9B305E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      00007FF9B2E61E60
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,252D87E0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FF9B2F15B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FF9B305E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FF9B305E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      00007FF9B2E61E60
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,2576DBE0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B315C2E8]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B3174C88]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FF9B2F15B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B315C3A8]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FF9B305E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FF9B305E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      00007FF9B2E61E60
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,28037BE0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30CE778]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L02
test      r8b,18
je        short M01_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M01_L00
 
ret
M01_L01
 
test      r8b,4
je        short M01_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M01_L00
M01_L02
 
cmp       r8,40
ja        short M01_L07
M01_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L06
M01_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L05
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M01_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M01_L00
M01_L06
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L04
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        near ptr M01_L03
jmp       near ptr M01_L04
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FF9B2EF5B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FF9B303E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FF9B303E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      00007FF9B2E41E60
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,2E615A70008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30FE778]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FF9B2F25B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B310CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FF9B306E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FF9B306E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      00007FF9B2E71E60
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33BF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,1E889520008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FF9B30DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FF9B30CE778]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FF9B2EF5B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FF9B303E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FF9B303E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      00007FF9B2E41E60
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,2AEFEE00008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,1D01C4061B0
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FF9B35DE420]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FF9B38A7E10]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FF9B35CEE20]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FF9B2E641F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FF9B35CF390]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L05
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
jmp       short M02_L04
M02_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L03
 
mov       rcx,rbx
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M02_L00
M02_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,1D01C406B60
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B30FC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
jmp       short M03_L07
M03_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L06
 
mov       rcx,rdi
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M03_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M03_L02
jmp       short M03_L09
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,210AE0F0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FF9B35CF390]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,1D01C406B60
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B30FC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FF9B35CF360]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FF9B30FC1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FF9B35CF360]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,1B5DA0081A8
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FF9B35EE578]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FF9B38B7690]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FF9B35DE9B8]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FF9B2E741F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEF28]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M02_L03
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
M02_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M02_L00
M02_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L05
 
mov       rcx,rbx
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L02
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,1B5DA008B58
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
jmp       short M03_L07
M03_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L06
 
mov       rcx,rdi
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M03_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M03_L02
jmp       short M03_L09
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FF9B30FE778]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,1F66C0A0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEF28]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,1B5DA008B58
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEEF8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEEF8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,2A0970081A8
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FF9B35EE420]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FF9B38B7E10]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FF9B35DED60]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FF9B2E741F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FF9B35DF2D0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L05
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
jmp       short M02_L04
M02_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L03
 
mov       rcx,rbx
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M02_L00
M02_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,2A097008B58
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
M03_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M03_L02
jmp       short M03_L09
M03_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L07
 
mov       rcx,rdi
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M03_L04
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FF9B30FE778]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,2E129050008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FF9B35DF2D0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,2A097008B58
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FF9B35DF2A0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FF9B35DF2A0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,1653BC081A8
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FF9B35CE578]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FF9B3897E10]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FF9B35BEA30]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FF9B2E541F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FF9B35BEFA0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L05
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
jmp       short M02_L04
M02_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L03
 
mov       rcx,rbx
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M02_L00
M02_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,1653BC08B58
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B30EC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
jmp       short M03_L07
M03_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L06
 
mov       rcx,rdi
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M03_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M03_L02
jmp       short M03_L09
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FF9B30DE778]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,1A5CDB20008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FF9B35BEFA0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,1653BC08B58
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B30EC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FF9B35BEF70]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FF9B30EC1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FF9B35BEF70]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,20D834081A8
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FF9B35BE578]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FF9B388D2A8]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FF9B35AEA30]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FF9B2E441F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FF9B35AEFA0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M02_L03
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
M02_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M02_L00
M02_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L05
 
mov       rcx,rbx
call      qword ptr [7FF9B30DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L02
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,20D83408B58
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B30DC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
M03_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M03_L02
jmp       short M03_L09
M03_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L07
 
mov       rcx,rdi
call      qword ptr [7FF9B30DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M03_L04
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FF9B30CE778]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,24E15400008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FF9B35AEFA0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,20D83408B58
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B30DC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FF9B35AEF70]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FF9B30DC1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FF9B35AEF70]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,14CD88061B0
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FF9B35EE4D8]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FF9B38BD2A8]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FF9B35DE6A0]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FF9B2E741F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEC10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M02_L03
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
M02_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M02_L00
M02_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L05
 
mov       rcx,rbx
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L02
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,14CD8806B60
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
M03_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M03_L02
jmp       short M03_L09
M03_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L07
 
mov       rcx,rdi
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M03_L04
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FF9B30FE778]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,18D6A830008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEC10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,14CD8806B60
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEBE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEBE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,2B51B8081A8
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FF9B35DE578]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FF9B38AD2A8]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FF9B35CEA30]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FF9B2E641F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FF9B35CEFA0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M02_L03
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
M02_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M02_L00
M02_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L05
 
mov       rcx,rbx
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L02
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,2B51B808B58
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B30FC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
M03_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M03_L02
jmp       short M03_L09
M03_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L07
 
mov       rcx,rdi
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M03_L04
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,2F5AD860008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FF9B35CEFA0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,2B51B808B58
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B30FC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FF9B35CEF70]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FF9B30FC1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FF9B35CEF70]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,1D65F0081A8
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FF9B35EE578]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FF9B38BD2A8]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FF9B35DEA30]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FF9B2E741F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEFA0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L05
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
jmp       short M02_L04
M02_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L03
 
mov       rcx,rbx
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M02_L00
M02_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,1D65F008B58
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
jmp       short M03_L07
M03_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L06
 
mov       rcx,rdi
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M03_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M03_L02
jmp       short M03_L09
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FF9B30FE778]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,216F0EA0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEFA0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,1D65F008B58
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEF70]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEF70]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L04
M00_L00
 
mov       ecx,[rsi+1C]
add       ecx,[rsi+18]
test      ecx,ecx
jle       short M00_L01
mov       ecx,[rsi+18]
mov       rdx,[rsi+8]
cmp       [rdx+8],ecx
ja        near ptr M00_L07
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FF9B30DC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L01
 
mov       rcx,r15
mov       r8,r13
mov       rdx,2A338970210
call      qword ptr [7FF9B2E46B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+38]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L02
 
cmp       qword ptr [rax+8],0
jne       short M00_L03
mov       r8,262A6800438
cmp       qword ptr [r8],0
jne       short M00_L03
mov       r8,262A6800418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L03
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L04
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
jbe       near ptr M00_L08
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FF9B30DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
cmp       ebp,[rdi+44]
jne       near ptr M00_L11
M00_L05
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L06
mov       rcx,rsi
call      qword ptr [7FF9B30CE778]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L06
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       near ptr M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L05
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L07
 
mov       ecx,ecx
mov       word ptr [rdx+rcx*2+10],2C
inc       dword ptr [rsi+18]
jmp       near ptr M00_L01
M00_L08
 
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M00_L10
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L09
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M00_L09
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       near ptr M00_L04
M00_L10
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L09
M00_L11
 
call      qword ptr [7FF9B303EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L02
M00_L13
 
call      qword ptr [7FF9B2FE4030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L03
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FF9B30DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      00007FF9B2E41E60
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FF9B2E46B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FF9B303EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FF9B2E46B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FF9B2E46B08]; System.String.Concat(System.String, System.String)
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B303E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B303E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E41E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2A338970008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FF9B2EF5B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FF9D5F541F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FF9D5F67B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FF9D5F68B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L05
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FF9B30DC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,24CAB2E0210
call      qword ptr [7FF9B2E46B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+30]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,20C19400438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,20C19400418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L05
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
jbe       near ptr M00_L08
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FF9B30DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L05
 
cmp       ebp,[rdi+44]
jne       near ptr M00_L11
M00_L06
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L07
mov       rcx,rsi
call      qword ptr [7FF9B30CE778]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L07
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       near ptr M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L06
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L08
 
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L10
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L09
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       near ptr M00_L05
M00_L10
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L09
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L09
M00_L11
 
call      qword ptr [7FF9B303EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FF9B2FE4030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FF9B30DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      00007FF9B2E41E60
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FF9B2E46B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FF9B303EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FF9B2E46B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FF9B2E46B08]; System.String.Concat(System.String, System.String)
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FF9B303E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FF9B303E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      00007FF9B2E41E60
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,24CAB2E0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FF9B2EF5B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FF9D5F541F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FF9D5F67B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FF9D5F68B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FF9B30FC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,2342B430210
call      qword ptr [7FF9B2E66B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+38]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,1F3A1400438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,1F3A1400418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L08
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L06
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FF9B305EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FF9B3004030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FF9B30FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      00007FF9B2E61E60
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FF9B2E66B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FF9B305EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FF9B2E66B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FF9B2E66B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FF9B2F15B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FF9B305E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FF9B305E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      00007FF9B2E61E60
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,2342B430008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FF9D5F541F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FF9D5F67B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FF9D5F68B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FF9B30FC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,164A24B0210
call      qword ptr [7FF9B2E66B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+38]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,12410800438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,12410800418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L08
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L06
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FF9B305EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FF9B3004030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FF9B30FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      00007FF9B2E61E60
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FF9B2E66B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FF9B305EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FF9B2E66B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FF9B2E66B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FF9B2F15B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FF9B305E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FF9B305E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      00007FF9B2E61E60
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,164A24B0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FF9D5F541F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FF9D5F67B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FF9D5F68B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FF9B30DC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,2709C430210
call      qword ptr [7FF9B2E46B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+38]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,2300A400438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,2300A400418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L08
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L06
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FF9B30DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FF9B30CE778]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FF9B303EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FF9B2FE4030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FF9B30DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      00007FF9B2E41E60
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FF9B2E46B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FF9B303EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FF9B2E46B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FF9B2E46B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FF9B2EF5B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FF9B303E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FF9B303E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      00007FF9B2E41E60
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2CF4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B338F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2EFD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,2709C430008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FF9D5F541F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FF9D5F67B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FF9D5F68B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FF9B30EC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,3369A1A0210
call      qword ptr [7FF9B2E56B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+40]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,2F608400438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,2F608400418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L08
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L06
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FF9B30DE778]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FF9B304EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FF9B2FF4030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FF9B30ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      00007FF9B2E51E60
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FF9B2E56B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FF9B304EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FF9B2E56B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FF9B2E56B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FF9B2F05B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FF9B304E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FF9B304E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      00007FF9B2E51E60
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,3369A1A0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FF9D5F541F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FF9D5F67B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FF9D5F68B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FF9B30EC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,26C8ACB0210
call      qword ptr [7FF9B2E56B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+30]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,22BF9000438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,22BF9000418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L08
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L06
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FF9B30DE778]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FF9B304EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FF9B2FF4030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FF9B30ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      00007FF9B2E51E60
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FF9B2E56B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FF9B304EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FF9B2E56B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FF9B2E56B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FF9B2F05B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FF9B304E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FF9B304E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      00007FF9B2E51E60
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D04000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B339F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F0D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,26C8ACB0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FF9D5F541F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FF9D5F67B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FF9D5F68B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FF9B30FC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,216464F0210
call      qword ptr [7FF9B2E66B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+38]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,1D5B4800438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,1D5B4800418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L08
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L06
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FF9B305EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FF9B3004030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FF9B30FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      00007FF9B2E61E60
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FF9B2E66B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FF9B305EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FF9B2E66B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FF9B2E66B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FF9B2F15B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FF9B30FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FF9B305E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FF9B305E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      00007FF9B2E61E60
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FF9B2D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FF9B33AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FF9B2F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,216464F0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FF9D5F541F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FF9D5F67B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FF9D5F68B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FF9B3897D80]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,107C8008B58
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FF9B30EC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L08
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
M01_L04
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L09
cmp       ecx,r15d
jle       short M01_L06
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L10
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L06
M01_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L06
 
add       r15d,1
jo        short M01_L09
cmp       esi,r15d
jg        near ptr M01_L02
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L04
M01_L08
 
mov       rcx,r14
call      qword ptr [7FF9B30DE778]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L09
 
call      CORINFO_HELP_OVERFLOW
M01_L10
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FF9B30EC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
jmp       short M01_L06
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,14859CD0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FF9B35BEF28]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,107C8008B58
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FF9B30EC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FF9B35BEEF8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FF9B3887D80]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,1DD30008B58
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FF9B30DC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L09
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
jmp       short M01_L06
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L05
 
mov       rcx,r14
call      qword ptr [7FF9B30DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L10
cmp       ecx,r15d
jle       short M01_L08
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L07
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FF9B30DC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M01_L08
 
add       r15d,1
jo        short M01_L10
cmp       esi,r15d
jg        near ptr M01_L02
M01_L09
 
mov       rcx,r14
call      qword ptr [7FF9B30CE778]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L10
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,21DC1DC0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FF9B35AEF28]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,1DD30008B58
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FF9B30DC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FF9B35AEEF8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FF9B38B7D80]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,154A9008B58
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L09
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
jmp       short M01_L06
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L05
 
mov       rcx,r14
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L10
cmp       ecx,r15d
jle       short M01_L08
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L07
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FF9B310C3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M01_L08
 
add       r15d,1
jo        short M01_L10
cmp       esi,r15d
jg        near ptr M01_L02
M01_L09
 
mov       rcx,r14
call      qword ptr [7FF9B30FE778]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L10
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,1953B160008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEF28]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,154A9008B58
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEEF8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FF9B38B7D80]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,175AD008B58
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L09
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
jmp       short M01_L06
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L05
 
mov       rcx,r14
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L10
cmp       ecx,r15d
jle       short M01_L08
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L07
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FF9B310C3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M01_L08
 
add       r15d,1
jo        short M01_L10
cmp       esi,r15d
jg        near ptr M01_L02
M01_L09
 
mov       rcx,r14
call      qword ptr [7FF9B30FE778]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L10
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,1B63EDB0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEC10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,175AD008B58
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEBE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FF9B38BD218]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,2127EC08B58
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L08
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
M01_L04
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L09
cmp       ecx,r15d
jle       short M01_L06
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L10
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L06
M01_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L06
 
add       r15d,1
jo        short M01_L09
cmp       esi,r15d
jg        near ptr M01_L02
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
call      qword ptr [7FF9B310CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L04
M01_L08
 
mov       rcx,r14
call      qword ptr [7FF9B30FE778]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L09
 
call      CORINFO_HELP_OVERFLOW
M01_L10
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FF9B310C3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
jmp       short M01_L06
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,25310B80008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEF28]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,2127EC08B58
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FF9B310C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEEF8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FF9B388D218]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,272EF808B58
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FF9B30DC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L08
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
M01_L04
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L09
cmp       ecx,r15d
jle       short M01_L06
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L10
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L06
M01_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L06
 
add       r15d,1
jo        short M01_L09
cmp       esi,r15d
jg        near ptr M01_L02
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
call      qword ptr [7FF9B30DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L04
M01_L08
 
mov       rcx,r14
call      qword ptr [7FF9B30CE778]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L09
 
call      CORINFO_HELP_OVERFLOW
M01_L10
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FF9B30DC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
jmp       short M01_L06
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,2B381700008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FF9B35AEFA0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,272EF808B58
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FF9B30DC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FF9B35AEF70]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FF9B388D218]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,29A7B408B58
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FF9B30DC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L08
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
M01_L04
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L09
cmp       ecx,r15d
jle       short M01_L06
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L10
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L06
M01_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L06
 
add       r15d,1
jo        short M01_L09
cmp       esi,r15d
jg        near ptr M01_L02
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
call      qword ptr [7FF9B30DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L04
M01_L08
 
mov       rcx,r14
call      qword ptr [7FF9B30CE778]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L09
 
call      CORINFO_HELP_OVERFLOW
M01_L10
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FF9B30DC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
jmp       short M01_L06
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,2DB0D2A0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FF9B35AEF28]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,29A7B408B58
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FF9B30DC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FF9B35AEEF8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FF9B38AD218]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,1B318C06B60
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FF9B30FC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L09
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
jmp       short M01_L06
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L05
 
mov       rcx,r14
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L10
cmp       ecx,r15d
jle       short M01_L08
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L07
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FF9B30FC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M01_L08
 
add       r15d,1
jo        short M01_L10
cmp       esi,r15d
jg        near ptr M01_L02
M01_L09
 
mov       rcx,r14
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L10
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,1F3A6AF0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FF9B35CEF28]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,1B318C06B60
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FF9B30FC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FF9B35CEEF8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FF9B3897690]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FF9B2E541F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M01_L03
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
M01_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M01_L00
M01_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L05
 
mov       rcx,rbx
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L02
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,1CFE0808B58
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-30]
M02_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B30EC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L07
lea       rdx,[r8+0C]
mov       r14d,[r8+8]
test      r14d,r14d
je        short M02_L07
mov       r8,[rdi+8]
mov       r15d,[rdi+18]
lea       ecx,[r15+r14]
cmp       ecx,[r8+8]
ja        short M02_L06
movsxd    rcx,r15d
lea       rcx,[r8+rcx*2+10]
cmp       r14d,2
jle       short M02_L05
movsxd    r8,r14d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
add       r14d,r15d
mov       [rdi+18],r14d
jmp       short M02_L07
M02_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L05
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r14d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L06
 
mov       rcx,rdi
mov       r8d,r14d
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M02_L02
jmp       short M02_L09
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FF9B30DE778]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
mov       rax,21072660008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FF9B35BF390]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,1CFE0808B58
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-38]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B30EC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-38]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FF9B35BF360]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FF9B38A7E10]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FF9B2E641F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M01_L03
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
M01_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M01_L00
M01_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L05
 
mov       rcx,rbx
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L02
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,2149A808B58
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B30FC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
M02_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M02_L02
jmp       short M02_L09
M02_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L07
 
mov       rcx,rdi
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L04
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,2552C7A0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FF9B35CEC10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,2149A808B58
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B30FC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FF9B35CEBE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FF9B3897690]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FF9B2E541F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M01_L05
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
jmp       short M01_L04
M01_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M01_L00
M01_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,1EBC2008B58
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B30EC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
jmp       short M02_L07
M02_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L06
 
mov       rcx,rdi
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M02_L02
jmp       short M02_L09
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FF9B30DE778]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,22C53E90008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FF9B35BEFA0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,1EBC2008B58
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B30EC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FF9B35BEF70]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FF9B3887690]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FF9B2E441F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M01_L03
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
M01_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M01_L00
M01_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L05
 
mov       rcx,rbx
call      qword ptr [7FF9B30DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L02
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,2534B008B58
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B30DC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2EF5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
M02_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M02_L02
jmp       short M02_L09
M02_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L07
 
mov       rcx,rdi
call      qword ptr [7FF9B30DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L04
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FF9B30CE778]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,293DCDD0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FF9B35AEF28]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,2534B008B58
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B30DC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FF9B35AEEF8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FF9B389D2A8]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FF9B2E541F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M01_L03
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
M01_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M01_L00
M01_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L05
 
mov       rcx,rbx
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L02
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,2747E008B58
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B30EC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F05B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
M02_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M02_L02
jmp       short M02_L09
M02_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L07
 
mov       rcx,rdi
call      qword ptr [7FF9B30ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L04
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FF9B30DE778]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,2B50FE40008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FF9B35BEFA0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,2747E008B58
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B30EC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FF9B35BEF70]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FF9B38AD2A8]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FF9B2E641F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M01_L05
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
jmp       short M01_L04
M01_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M01_L00
M01_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,2696B008B58
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B30FC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
jmp       short M02_L07
M02_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L06
 
mov       rcx,rdi
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M02_L02
jmp       short M02_L09
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,2A9FCF20008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FF9B35CEFA0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,2696B008B58
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B30FC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FF9B35CEF70]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FF9B38AD2A8]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FF9B2E641F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M01_L05
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
jmp       short M01_L04
M01_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M01_L00
M01_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,1A1D6406B60
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B30FC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
jmp       short M02_L07
M02_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L06
 
mov       rcx,rdi
call      qword ptr [7FF9B30FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M02_L02
jmp       short M02_L09
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FF9B30EE778]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,1E2643C0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FF9B35CEF70]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,1A1D6406B60
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B30FC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FF9B35CEF40]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.18 (8.0.1825.31117), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FF9B38BD2A8]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FF9B2E741F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M01_L03
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
M01_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M01_L00
M01_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L05
 
mov       rcx,rbx
call      qword ptr [7FF9B317D950]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L02
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,29BB4806B60
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B317D0B0]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FF9B2F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
M02_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M02_L02
jmp       short M02_L09
M02_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L07
 
mov       rcx,rdi
call      qword ptr [7FF9B317D950]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L04
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FF9B3186198]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,2DC46950008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEF28]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,29BB4806B60
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FF9B317D0B0]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FF9B35DEEF8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret